A user operates a computing device to access media data (e.g., electronic content) from a media source. The media data can include audio data, video data, and/or other multimedia data. In many situations, the original format of the media data uses a relatively large data storage space. To reduce the data size and save data storage space, data compression is used. For example, the media source compresses the media data from the original format and provides the compressed media data to the computing device. The computing device decompresses the compressed media data for presentation to the user.
Many data compression techniques are possible. Vector quantization is one example of such techniques. In this technique, original media data, which is represented with media vectors from a large vector space, is encoded into codebook vectors in a subspace of the larger vector space. To do so, vector quantization uses a codebook to encode the representative media vectors into codebook vectors in the subspace. Because the subspace of the codebook vectors is smaller than the space of the media vectors, the encoded media data occupies less space in storage, requires less bandwidth in transmission, etc.
Although the data size is reduced, data compression generally involves complex computations that increase latency when the data is accessed, thereby reducing how quickly the data can be accessed and presented to a user. For example, in vector quantization, distances between the media vectors and the codebook vectors are computed using time-consuming algebraic functions. Hence, a time delay exists between a request to access the media vectors and the presentation of the media data represented by the codebook vectors. This time delay increases as the number and complexity of the decoding computations increase.
Practically, the latency associated with encoded data degrades the user's experience associated with the access to the media. For example, a digital video recorder (DVR) may use a particular data compression technique that introduces a ten-second latency. Based on a user request to record a live video stream at a particular time, the live video stream is compressed into a video file and the video file is stored for playback. However, the latency performance delays the availability of the recorded video stream for a particular time period (e.g., up to ten seconds). Hence, the live video stream may only be available for playback after that time period (e.g., ten seconds) and is similarly delayed from thereon.